/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

function createXMLHttpRequest(){
    var xmlHttp;
    if (window.ActiveXObject) {
        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
    else if (window.XMLHttpRequest) {
        xmlHttp = new XMLHttpRequest();
    }
    return xmlHttp;
}

function loadSubdelitos(){
    var id = document.getElementById("delito").value;

    if(id == -1){
        var select_subdelitos = document.getElementById("subdelito");
        select_subdelitos.length = 0;
        select_subdelitos.disabled = true;
        var option = document.createElement("option");
        option.setAttribute("value", -1);
        var txt = document.createTextNode("Esperando por delito");
        option.appendChild(txt);
        select_subdelitos.appendChild(option);
        return;
    }

    var req = createXMLHttpRequest();
    var url = "ControladorDenuncia?operacion=consultarSubdelitos&idDelito="+id;
    req.open("GET",url, true);
    req.onreadystatechange = function(){
        if(req.readyState == 4){
            if(req.status == 200){
                var textXML = req.responseXML;
                llenarSubdelitos(textXML);
            }else{
                alert("Error en requerimiento ajax. req.status: "+req.status);
            }
        }
    };
    req.send(null);
}

function llenarSubdelitos(textXML){
    var refIdSubdelito = textXML.getElementsByTagName("idsubdelito");
    var refNombre = textXML.getElementsByTagName("nombre");
    var select_subdelito = document.getElementById("subdelito");
    
    select_subdelito.length = 0;
    select_subdelito.disabled = false;
    if(refIdSubdelito.length == 0){
        var option = document.createElement("option");
        option.setAttribute("value", -1);
        var txt = document.createTextNode("No existen datos para mostrar.");
        option.appendChild(txt);

        select_subdelito.appendChild(option);
        return;
    }

    for(i=0;i<refIdSubdelito.length;i++){
        var idSubdelito = refIdSubdelito[i].firstChild.nodeValue;
        var nombre = refNombre[i].firstChild.nodeValue;

        var option = document.createElement("option");
        option.setAttribute("value", idSubdelito);
        var txt = document.createTextNode(nombre);
        option.appendChild(txt);

        select_subdelito.appendChild(option);
    }
}

function loadAreas(){
    var id = document.getElementById("ciudad").value;

    if(id == -1){
        var select_area = document.getElementById("area");
        select_area.length = 0;
        select_area.disabled = true;
        var option = document.createElement("option");
        option.setAttribute("value", -1);
        var txt = document.createTextNode("Esperando por ciudad");
        option.appendChild(txt);
        select_area.appendChild(option);
        return;
    }
    
    var req = createXMLHttpRequest();
    var url = "ControladorDenuncia?operacion=consultarAreas&idCiudad="+id;
    req.open("GET",url, true);
    req.onreadystatechange = function(){
        if(req.readyState == 4){
            if(req.status == 200){
                var textXML = req.responseXML;
                llenarAreas(textXML);
            }else{
                alert("Error en requerimiento ajax. req.status: "+req.status);
            }
        }
    };
    req.send(null);
}

function llenarAreas(textXML){
    var refIdArea = textXML.getElementsByTagName("idarea");
    var refNombre = textXML.getElementsByTagName("nombre");
    var select_area = document.getElementById("area");

    select_area.length = 0;
    select_area.disabled = false;
    if(refIdArea.length == 0){
        var option = document.createElement("option");
        option.setAttribute("value", -1);
        var txt = document.createTextNode("No existen datos para mostrar.");
        option.appendChild(txt);

        select_area.appendChild(option);
        return;
    }

    for(i=0;i<refIdArea.length;i++){
        var idArea = refIdArea[i].firstChild.nodeValue;
        var nombre = refNombre[i].firstChild.nodeValue;

        var option = document.createElement("option");
        option.setAttribute("value", idArea);
        var txt = document.createTextNode(nombre);
        option.appendChild(txt);

        select_area.appendChild(option);
    }
}

function crearTablaObjetos(){
    var txt = document.createTextNode("Tipo");
    var td1 = document.createElement("td");
    td1.width = "81px";
    td1.appendChild(txt);

    txt = document.createTextNode("Descripcion");
    var td2 = document.createElement("td");
    td2.width = "300px";
    td2.appendChild(txt);

    txt = document.createTextNode("quitar");
    var td3 = document.createElement("td");
    td3.width = "20px";
    td3.appendChild(txt);

    var tr = document.createElement("tr");
    tr.appendChild(td1);
    tr.appendChild(td2);
    tr.appendChild(td3);

    thead = document.createElement("thead");
    thead.setAttribute("id", "tablacabecera");
    thead.appendChild(tr);

    tbody = document.createElement("tbody");
    tbody.setAttribute("id", "tablacuerpo");

    tabla = document.createElement("table");
    tabla.setAttribute("id", "tablaobjetos");
    tabla.appendChild(thead);
    tabla.appendChild(tbody);

    var inner = document.createElement("div");
    inner.setAttribute("id", "inner");
    inner.className = "inner";
    inner.appendChild(tabla);
    var outer = document.createElement("div");
    outer.setAttribute("id", "outer");
    outer.className = "outer";
    outer.appendChild(inner);

    var div = document.getElementById("divobjetos");
    div.appendChild(outer);
}

function agregarFila(tipo, descripcion, idObjeto){
    var tabla = document.getElementById("tablaobjetos");
    var tbody;
    if(tabla == null){
        crearTablaObjetos();    
    }
    tbody = document.getElementById("tablacuerpo");

    var txt1 = document.createTextNode(tipo);
    var col1 = document.createElement("td");
    col1.width = "80px";
    col1.appendChild(txt1);

    var txt2 = document.createTextNode(descripcion);
    var col2 = document.createElement("td");
    col2.width = "300px";
    col2.appendChild(txt2);

    var txt3 = document.createTextNode("quitar");
    var a = document.createElement("a");
    a.href = "javascript: quitarFila("+idObjeto+");";
    a.appendChild(txt3);
    var col3 = document.createElement("td");
    col3.width = "20px";
    col3.appendChild(a);

    var fila = document.createElement("tr");
    fila.setAttribute("id", idObjeto);
    fila.appendChild(col1);
    fila.appendChild(col2);
    fila.appendChild(col3);

    tbody.appendChild(fila);
}

function quitarFila(idObjeto){
    var url = "ControladorObjeto?operacion=quitarDeSession&idObjeto="+idObjeto;

    var req = createXMLHttpRequest();
    req.open("GET",url, true);
    req.onreadystatechange = function(){
        if(req.readyState == 4){
            if(req.status == 200){
                var textXML = req.responseXML;
                var estado = textXML.getElementsByTagName("estado")[0].firstChild.nodeValue;
                if(estado == "ok"){
                    var tabla = document.getElementById("tablaobjetos");
                    var fila =  document.getElementById(idObjeto);
                    tabla.deleteRow(fila.rowIndex);
                    if(tabla.rows.length == 1){
                        var div = document.getElementById("divobjetos");
                        var outer = document.getElementById("outer");
                        div.removeChild(outer);
                    }
                }else{
                    alert("Error al intentar guardar objeto en denuncia");
                    var mensaje = textXML.getElementsByTagName("mensaje")[0].firstChild.nodeValue;
                    alert("Mensaje del servidor: \n"+mensaje);
                }
            }else{
                alert("Error en requerimiento ajax. req.status: "+req.status);
            }
        }
    };
    req.send(null);
}

function validarFormularioDenuncia(){
    var flag = true;

    var descripcion = document.getElementById("descripcion").value;
    if(isEmpty(descripcion)){
        flag = false;
        showError("celda_descripcion", "Escriba una descripcion de la denuncia.");
    }else{
        hideError("celda_descripcion");
    }

    var fechaDenuncia = document.getElementById("fechaDenuncia").value;
    var fechaDelito = document.getElementById("fechaDelito").value;
    if(isEmpty(fechaDelito)){
        flag = false;
        showError("datefields", "Campo obligatorio.");
    }else{
        var c1 = fechaDenuncia.split('-');
        var f1 = new Date(c1[2],parseInt(c1[1])-1,c1[0]);
        var c2 = fechaDelito.split('-');
        var f2 = new Date(c2[2],c2[1]-1,c2[0]);
        if(f2 > f1){
            flag = false;
            showError("datefields", "Fecha futura.");
        }else{
            hideError("datefields");
        }
    }

    var delito = document.getElementById("delito").value;
    if(delito == -1){
        flag = false;
        showError("celda_delito", "Campo obligatorio.");
    }else{
        hideError("celda_delito");
    }

    var subdelito = document.getElementById("subdelito").value;
    if(subdelito == -1){
        flag = false;
        showError("celda_subdelito", "Campo obligatorio.");
    }else{
        hideError("celda_subdelito");
    }

    var ciudad = document.getElementById("ciudad").value;
    if(ciudad == -1){
        flag = false;
        showError("celda_ciudad", "Campo obligatorio.");
    }else{
        hideError("celda_ciudad");
    }

    var area = document.getElementById("area").value;
    if(area == -1){
        flag = false;
        showError("celda_area", "Campo obligatorio.");
    }else{
        hideError("celda_area");
    }

    var legal = document.getElementById("legal");

    return flag;
}

function isEmpty(campo){
    if(campo == null || campo == "")
        return true;
    return false;
}

function showError(idCelda, texto){
    var idMensaje = "msg_"+idCelda;
    var msg = document.getElementById(idMensaje);
    if(msg == null){
        msg = document.createElement("span");
        msg.setAttribute("id", idMensaje);
        msg.className = "msg_error";
        var txt = document.createTextNode(texto);
        msg.appendChild(txt);
        var celda = document.getElementById(idCelda);
        celda.appendChild(msg);
    }
}

function hideError(idCelda){
    var idMensaje = "msg_"+idCelda;
    var msg = document.getElementById(idMensaje);
    if(msg != null){
        var celda = document.getElementById(idCelda);
        celda.removeChild(msg);
    }
}

//function loadFoto(){
//    var div = document.getElementById("loadfoto");
//    while(div.childNodes.length>0){
//		div.removeChild(div.childNodes[0]);
//	}
//    var urlfoto = document.getElementByTagName("urlfoto").getAttribute("value");
//    var img = document.createElement("img");
//    img.setAttribute("src", urlfoto);
//    div.appendChild(img);
//}